import java.util.*;
//Set容器的使用
class Main{
    public static void main(String[] args) {
        Set<Integer> set = new TreeSet<Integer>();

        //1.add 增加 1 , 2 , 3
        set.add(1);
        set.add(2);
        set.add(3);

        //2,contains 查看是否存在元素 1；
        System.out.println(set.contains(1));

        //3.remove方法
        set.remove(3);

        //4.iterator 遍历容器
        Iterator<Integer> it = set.iterator();

        System.out.print("容器的数据：[ ");
        while(it.hasNext()){
            System.out.print(it.next() + " ");
        }
        System.out.println("]");

        //创建一个容器
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);

        //containsAll 判断list的元素是否全部在容器中
        System.out.println(set.containsAll(list));

        //toArray 将容器转为数组
        Object[] o = set.toArray();
        for(Object x : o) System.out.print(x + " ");
        System.out.println();

        //创建容器
        Collection<Integer> collection = new ArrayList<>();
        collection.add(444);
        collection.add(555);
        collection.add(666);

        //addAll ,将容器的数据存放到set中
        set.addAll(collection);

        //使用迭代器遍历
        Iterator<Integer> iterator = set.iterator();
        System.out.println("[ ");
        while(iterator.hasNext()){
            System.out.print(iterator.next() + " ");
        }
        System.out.println("]");
    }
}

class Solution{
    public static void main(String[] args) {
        Map<Integer,Integer> map = new HashMap<Integer,Integer>();

        //1.put 增加1，1  2，1  3，1
        map.put(1,1);
        map.put(2,1);
        map.put(3,1);

        //2.containsKey 判断键值是否存在
        System.out.println(1 + "键值是否存在：" + map.containsKey(1));

        //3.containsValue 判断是否值是否存在
        System.out.println(1 + "键值是否存在：" + map.containsValue(1));

        //4.get/getOrDefault get方法如果发现没有键值报异常，getOrDefault发现没有键值返回默认值
        System.out.println(1 + "键值对应的值为：" + map.get(1));
        System.out.println(4 + "键值对应的值为：" + map.getOrDefault(4,0));//返回0

        //5.移除key-val
        System.out.println(map.remove(1));
        System.out.println(map.remove(1,1));//实际上是与1个参数的删除过程一样，多加一层判断逻辑

        //获取全部不重复的键值
        Set<Map.Entry<Integer,Integer>> entrySet = map.entrySet();

        for(Map.Entry<Integer,Integer> entrySet1 : entrySet){
            System.out.println(entrySet1.getKey() + "--->" + entrySet1.getValue());
        }

        //获取全部vla值
        Collection<Integer> collection = map.values();
        for(Integer x : collection) System.out.print(x + " ");

    }
}